package com.practice.集合一边遍历一边删除;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
 * Created by IntelliJ IDEA2021.3
 * @Author: Tenghw
 * @Date: 2022/11/05  13:40
 * @Description: 集合如何一边遍历一边删除
 */
public class Demo1 {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList() {{
            add(1);
            add(6);
            add(2);
            add(6);
            add(3);
            }};
        //错误方式
       //for(Integer integer:list){
       //    if(integer%2==0){
       //        list.remove(integer);
       //    }
       //    System.out.println(list);
       //    System.out.println(integer);
       //}
        //正确方式1：
        //Iterator<Integer> iterator = list.iterator();
        //while (iterator.hasNext()){
        //    Integer next = iterator.next();
        //    if(next%2==0){
        //       iterator.remove();
        //    }
        //    System.out.println("每次删除后的list : "+list);
        //}
        //System.out.println("最终结果的list : "+ list);
        ////正确方式2：
        //for(int i=0;i<list.size();i++){
        //    Integer integer = list.get(i);
        //    System.out.println("i= "+i);
        //    System.out.println("当前元素为："+integer);
        //    System.out.println("删除前："+list);
        //    if(integer%2==0){
        //        list.remove(i);
        //        --i;
        //    }
        //    System.out.println("删除后："+list);
        //
        //}
        //System.out.println("最终结果的list："+list);
        //正确方式3：
        for(int i=list.size()-1;i>=0;i--){
            Integer integer = list.get(i);
            System.out.println("i= "+i);
            System.out.println("当前元素为："+integer);
            System.out.println("删除前："+list);
            if(integer%2==0){
                list.remove(i);
            }
            System.out.println("删除后："+list);

        }
        System.out.println("最终结果的list："+list);
    }
    
}
